#ifndef _DOUBLE_LINKLIST_H
#define _DOUBLE_LINKLIST_H

#include<stdio.h>
#include <stdlib.h>
#include <string.h>
typedef int data_type;
typedef struct linkNode
{
	data_type data;//数据域
	struct linkNode* prior;//指向前驱结点
	struct linkNode* next;//指向后继结点
}linkNode,*pLinklist;
//--------------------------函数声明--------------------------
//创建一个空链表
pLinklist list_Create();


//判断是否尾空链表
int empty(pLinklist H);
//遍历  双向链表
int list_show(pLinklist H);
//获得指定位置的结点
pLinklist list_get(pLinklist H, int pos);//通过pos 获得第pos个位置的结点;
//头插
int list_head_insert(pLinklist H, data_type value);
//尾插
int list_tail_insert(pLinklist H, data_type value);
//指定位置插入
int list_insert(pLinklist H, data_type value, int pos);//将value插入到第pos结点之前
//销毁链表
pLinklist list_free(pLinklist H);
//删除某一个位置上的结点
int list_delete(pLinklist H, int pos);
//求链表的总结点数（包括头结点在内）
int list_length_head(pLinklist H);
//求链表的数据结点数（不包括头结点在内）
int list_DataNode_length(pLinklist H);
#endif